/**
  * @copyright Copyright (c) 2022, HiSilicon (Shanghai) Technologies Co., Ltd. All rights reserved.
  * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
  * following conditions are met:
  * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
  * disclaimer.
  * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
  * following disclaimer in the documentation and/or other materials provided with the distribution.
  * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote
  * products derived from this software without specific prior written permission.
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
  * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  * @file      feature.h
  * @author    MCU Driver Team
  * @brief     This file contains macro configurations related to the project. This file is generated by the IDE tool.
  */

#ifndef McuMagicTag_FEATURE_H
#define McuMagicTag_FEATURE_H

/* Macro definitions --------------------------------------------------------- */
#define CHIP_3061MNPICA MACRO_ENABLE

#define MACRO_ENABLE  1
#define MACRO_DISABLE 0

/* Macro switch */
#define BASE_DEFINE_USE_ASSERT    MACRO_ENABLE
#ifndef FLASH_CRC_CONFIG
#define FLASH_CRC_CONFIG
#endif /* #ifndef FLASH_CRC_CONFIG */
#define BASE_MATH_SINCOS_MIDDLE_TABLE MACRO_ENABLE /**< This macro is used to control the table type when the
                                                        BASE_MATH_GetSinCos() queries the table. When the value of
                                                        this macro is MACRO_ENABLE, the error value obtained by the
                                                        BASE_MATH_GetSinCos() is relatively small, and the return
                                                        value of the function may be greater than or less than the
                                                        actual value. When the value of this macro is MACRO_DISABLE,
                                                        the error value obtained by the BASE_MATH_GetSinCos() is
                                                        relatively large. However, in the range [0°, 180°) and
                                                        [180°, 360°), the return value of the function is either
                                                        greater than or less than the actual value. */

#define MCS_PARAM_CHECK MACRO_ENABLE
#define APT_PARAM_CHECK MACRO_ENABLE
#define ADC_PARAM_CHECK MACRO_ENABLE
#define CAPM_PARAM_CHECK MACRO_ENABLE
#define CRG_PARAM_CHECK MACRO_ENABLE
#define I2C_PARAM_CHECK MACRO_ENABLE
#define UART_PARAM_CHECK MACRO_ENABLE
#define SPI_PARAM_CHECK MACRO_ENABLE
#define TIMER_PARAM_CHECK MACRO_ENABLE
#define IWDG_PARAM_CHECK MACRO_ENABLE
#define WWDG_PARAM_CHECK MACRO_ENABLE
#define GPIO_PARAM_CHECK MACRO_ENABLE
#define GPT_PARAM_CHECK MACRO_ENABLE
#define DMA_PARAM_CHECK MACRO_ENABLE
#define CRC_PARAM_CHECK MACRO_ENABLE
#define CFD_PARAM_CHECK MACRO_ENABLE
#define CMM_PARAM_CHECK MACRO_ENABLE
#define CAN_PARAM_CHECK MACRO_ENABLE
#define FLASH_PARAM_CHECK MACRO_ENABLE
#define PMC_PARAM_CHECK MACRO_ENABLE
#define ACMP_PARAM_CHECK MACRO_ENABLE
#define DAC_PARAM_CHECK MACRO_ENABLE
#define PGA_PARAM_CHECK MACRO_ENABLE
#define USER_MODE_ENABLE MACRO_ENABLE
#define IOCMG_PARAM_CHECK MACRO_ENABLE
#define QDM_PARAM_CHECK MACRO_ENABLE

/* Peripheral module macro switch--------------------------------------------- */
#define BOARD_DIM_NUM 1 /**< Number of dimming handle arrays. */

#define BOARD_KEY_NUM 10 /**< Number of key handle arrays. */
#define BOARD_KEY_PRESS_ON GPIO_HIGH_LEVEL /**< GPIO status corresponding to long press valid. */
#define BOARD_KEY_PRESS_OFF GPIO_LOW_LEVEL /**< GPIO status corresponding to short press valid. */

#define BOARD_LED_SEG_NUM 4 /**< Number of segments. */
#define BOARD_LED_SEGMENT_ON GPIO_HIGH_LEVEL /**< GPIO level status corresponding to valid segments. */
#define BOARD_LED_SEGMENT_OFF GPIO_LOW_LEVEL /**< GPIO level status corresponding to invalid segments. */

#define BOARD_MKEY_SCHEME_NUMBER BOARD_MKEY_SCHEME_NUMBER_ONE /**< Define the scheme to be adopted. */
#define BOARD_MKEY_OUT_NUM 4 /**< Number of GPIO pins used as output during scanning. */
#define BOARD_MKEY_IN_NUM 4 /**< Number of GPIO pins used as input during scanning. */
#define BOARD_MKEY_OUT_PIN_VALID GPIO_LOW_LEVEL /**< GPIO level status corresponding to the valid \
                                                   status of the output GPIO in the key matrix. */
#define BOARD_MKEY_OUT_PIN_INVALID GPIO_HIGH_LEVEL /**< GPIO level status corresponding to the \
                                                      invalid status of the output GPIO in the key matrix. */
#define BOARD_MKEY_IN_PIN_VALID GPIO_LOW_LEVEL /**< Indicates the GPIO level corresponding to the \
                                                  valid status of the input GPIO in the key matrix. */
#define BOARD_MKEY_IN_PIN_INVALID GPIO_HIGH_LEVEL /**< Indicates the GPIO level corresponding to the \
                                                     invalid status of the input GPIO in the key matrix. */

#define BOARD_PULSES_NUM 2 /**< Number of pulse handles. */

#define BASE_DEFINE_SLIPAVERAGE_NUM 2 /**< Sliding average array length. */

#define LISTNODE_MAX 20

#define BASE_DEFINE_DMA_QUICKSTART

#define XTRAIL_FREQ 30000000U

#define DBG_USE_NO_PRINTF     0U
#define DBG_USE_UART_PRINTF   1U

#define DBG_PRINTF_USE DBG_USE_UART_PRINTF
#if (DBG_PRINTF_USE == DBG_USE_UART_PRINTF)
#define DBG_PRINTF_UART_PORT UART0
#endif

/* USER CODE BEGIN 0 */
/* USER CODE 区域内代码不会被覆盖，区域外会被生成的默认代码覆盖（其余USER CODE 区域同理） */
/* USER CODE END 0 */

#endif /* McuMagicTag_FEATURE_H */